/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CapadeDatos;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import modelo.beanPermisos;
import modelo.beanusuario;
import modelo.beanSistema;
import proyectocatalina.Login;



/**
 *
 * @author principal
 */
public class DaoUsuariosSistemas {

public static  ArrayList datosusuarios(){
        ArrayList lista = new ArrayList();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Select * from usuarios; ";
            ResultSet rs =stm.executeQuery(sql);
            while (rs.next()){
                   beanusuario usuario = new beanusuario();
                   usuario.setIdUsuario(rs.getInt(1));
                   usuario.setApellidoPaterno(rs.getString(2));
                   usuario.setApellidoMaterno(rs.getString(3));
                   usuario.setNombres(rs.getString(4));
                   usuario.setUsuario(rs.getString(5));
                   usuario.setEstado(rs.getString(7));
                   usuario.setFechanacimiento(rs.getString(8));
                   usuario.setCreadofecha(rs.getString(9));
                   usuario.setCreadousuario(rs.getInt(10));
                   usuario.setCreadopor(rs.getString(11));
                   lista.add(usuario);
            }
    }catch(Exception e){System.out.print(e);
   }return lista;
   }
public static  ArrayList datosniveles(){
        ArrayList lista = new ArrayList();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Select * from permisos;";
            ResultSet rs =stm.executeQuery(sql);
            while (rs.next()){
                   beanPermisos permisos = new beanPermisos();
                   permisos.setIdnivel(rs.getString(1));
                   permisos.setIdform(rs.getString(2));
                   lista.add(permisos);
            }
    }catch(Exception e){System.out.print(e);
   }return lista;
   }
public static  ArrayList formulariosdisponibles(String Usuario){
        ArrayList lista = new ArrayList();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Call proc_consultarpermisos('"+Usuario+"')";
            ResultSet rs =stm.executeQuery(sql);
            while (rs.next()){
                   beanPermisos permisos = new beanPermisos();
                   permisos.setForm(rs.getString(1));
                   permisos.setOpcion(rs.getString(2));
                   permisos.setTipo(rs.getString(3));
                   lista.add(permisos);
            }
    }catch(Exception e){System.out.print(e);
   }return lista;
   }
    private beanusuario User;
public void insertarusersytem(String idusuariosistema, int idsistema, int idusuario, String idform){
        Boolean verdad = false;
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
//            Statement stm = cn.createStatement();
            String updateString = "INSERT INTO `fermica_basecatalina`.`usersystem` "
                    + "(`idusuariosistema`,`idUsuario`,`idSistema`,`NiveldePermisos`"
                    + ")value(?,?,?,?)";
            CallableStatement insertusuario = cn.prepareCall(updateString);
            insertusuario.setString(1, idusuariosistema);
            insertusuario.setInt(2, idusuario);
            insertusuario.setInt(3, idsistema);
            insertusuario.setString(4, idform);
            User = Login.usuarioglobal;
            String sql3 = "Call proc_auditoria(?,?,?,?,?,?)";
            Connection cn4 = ConexionBD.getInstance().getConnection();
            CallableStatement insertauditoria = cn4.prepareCall(sql3);
            insertauditoria.setInt(1, User.getIdUsuario());
            insertauditoria.setString(2, "Periodo");
            insertauditoria.setString(3, "insertar");
            insertauditoria.setString(4, "nulo");
            insertauditoria.setString(5,idusuariosistema+", "+idusuario+", "+idsistema+", "+idform);
            insertauditoria.setString(6,"nulo");
            if(insertusuario.execute()){
               verdad = false;
               JOptionPane.showMessageDialog(null,"NO INGRESADO");
            }
            else {
                verdad = true;
                JOptionPane.showMessageDialog(null,"INGRESADO");
            }
    }catch(Exception e){  JOptionPane.showMessageDialog(null,e.getMessage());
   }
   }
}
